
package ar.com.ctrln.control.administracion.cliente;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

import ar.com.ctrln.persistence.model.cliente.Cliente;
import ar.com.ctrln.persistence.model.contacto.Contacto;
import ar.com.ctrln.persistence.model.organizacion.Organizacion;
import ar.com.ctrln.persistence.model.persona.Cargo;
import ar.com.ctrln.persistence.model.persona.Direccion;
import ar.com.ctrln.persistence.model.persona.Telefono;
import ar.com.ctrln.persistence.model.proveedor.Proveedor;
import ar.com.ctrln.persistence.model.sistema.dashboardPpal.Movimiento;
import ar.com.ctrln.services.contacto.GestorContacto;
import ar.com.ctrln.services.persona.GestorCargo;
import ar.com.ctrln.services.persona.GestorDireccion;
import ar.com.ctrln.services.persona.GestorTelefono;
import ar.com.ctrln.services.sistema.principal.GestorMovimiento;

@Controller("registrarContacto")
public class RegistrarContacto {

	@Autowired
	private GestorContacto gestorContacto;
	
	@Autowired
	private GestorTelefono gestorTelefono;
	
	@Autowired
	private GestorDireccion gestorDireccion;
	
	@Autowired
	private GestorCargo gestorCargo;
	
	@Autowired
	private GestorMovimiento gestorMovimiento;
	
	private Movimiento movimiento;
	
	public void guardarContacto(Contacto contacto){
		gestorContacto.guardarContacto(contacto);
		
		if(contacto.getOrganizacion() instanceof Cliente){
			//informo el nuevo movimiento a la pantalla principal...		
			movimiento = gestorMovimiento.nuevoMovimiento("Nuevo contacto registrado: "+contacto.getOrganizacion().getRazonSocial()+": "+contacto.getCargo().getNombre()+" "+contacto.getNombre()+" "+contacto.getApellido(), 2, contacto.getId());
			gestorMovimiento.guardar(movimiento);			
		} else {

		}
	}
	
	public Telefono getTelefono(){
		return gestorTelefono.nuevoTelefono();
	}
	
	public Direccion getDireccion(){
		return gestorDireccion.nuevaDireccion();
	}
	
	public List<Cargo> listarCargos(){
		return gestorCargo.listarCargos();
	}

	public Contacto buscarContactoDoc(String doc) {
		return gestorContacto.buscarContacto(doc);
	}
	
}

